package com.lh.jianzhioffer.专项练习.位运算;

import java.math.BigInteger;

/**
 * @author: linghao
 * @since: 2023/2/15
 *
 * 给定一个非负整数 n ，请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数，并输出一个数组
 */
public class 前n个数字二进制中1的个数003 {

    public int[] countBits(int n) {
        int[] ints = new int[n];
        for(int i=0;i<=n;i++){
            String binaryString = Integer.toBinaryString(i);
            int sum = 0;
            for(int j=0;j<binaryString.length();j++){
                if(binaryString.charAt(j) == '1'){
                    sum++;
                }
            }
            ints[i] = sum;
        }
        return ints;
    }


}
